package com.yuju.common.util.bean;

import java.io.Serializable;
import java.util.Map;

import com.google.common.collect.Maps;
import com.yuju.common.Page;

import net.sf.cglib.beans.BeanMap;

/**
 * 
 * 类名：BeanUtil  <br />
 *
 * 功能：Bean工具包
 *
 * @author : xuehj <br />
 * @Date : 2018年1月25日 下午2:04:25  <br />
 * @version : 1.1 <br />
 */
public class BeanUtil {
	
	/**
	 * 功能：将bean转换成Map<br/>
	 * 构造分页对象
	 * @author xuehj
	 * @param bean bean对象
	 * @param currentPage 当前页
	 * @param row 每页显示记录数
	 * @Date 2017年9月13日 下午6:46:20 <br/>
	 */
	public static Map<Object, Object> getBeanMap(Serializable bean, int currentPage, int rows) {
		Map<Object, Object> map = getBeanMap(bean);

		if (rows > 0) {
			Page page = new Page(rows, currentPage);
			map.put("page", page);
		}
		
		return map;
	}
	
	/**
	 * 功能：将bean转换成Map<br/>
	 *
	 * @author xuehj
	 * @param bean bean对象
	 * @Date 2017年9月13日 下午6:46:20 <br/>
	 */
	public static Map<Object, Object> getBeanMap(Serializable bean) {
		Map<Object, Object> map = Maps.newHashMap();
	    if (bean != null) {
	        BeanMap beanMap = BeanMap.create(bean);
	        for (Object key : beanMap.keySet()) {
	        	if (null != beanMap.get(key)) {
	        		map.put(key, beanMap.get(key));
	        	}
	        }
	    }
	    return map;
	}
}
